<?php

namespace app\admin\controller\inventory;

use app\common\controller\Backend;
use think\Db;
use think\Exception;

/**
 * 安全库存管理管理
 *
 * @icon fa fa-circle-o
 */
class Kcsafe extends Backend
{

    /**
     */
    protected $vmodel = null;
    protected $searchFields = 'name,number,specification';

    public function _initialize()
    {
        parent::_initialize();
        $this->vmodel = new \app\admin\model\inventory\KcSafeView;
        $this->assign('status_arr',$this->vmodel->getStatusList());
    }



    /**
     * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
     * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
     * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
     */


    public function index()
    {
        //设置过滤方法
        $this->request->filter(['strip_tags', 'trim']);
        if (false === $this->request->isAjax()) {
            return $this->view->fetch();
        }
        //如果发送的来源是 Selectpage，则转发到 Selectpage
        if ($this->request->request('keyField')) {
            return $this->selectpage();
        }
        
        $op = $this->request->get("op", '', 'trim');
        $op = (array)json_decode($op, true);
        $filter = $this->request->get("filter", '');
        $where2 = [];
        
        /* if($filter){
            $filter=urldecode($filter);
            $filter=json_decode($filter,TRUE);
            if(isset($filter['status_text'])){
                $where2 = [
                    'safe_num' => ['GT',0]
                ];
                switch ($filter['status_text']){
                    case -1:
                        $where2['lack_num'] = ['LT',0];
                        break;
                    case 1:
                        $where2['lack_num'] = ['GT',0];
                        $where2['over_num'] = ['LT',0];
                        break;
                    case 2:
                        $where2['over_num'] = ['GT',0];
                        break;
                }
                unset($filter['status_text'],$op['status_text']);
            }
            $this->request->get(["filter"=>json_encode($filter),'op'=>json_encode($op)]);
        } */
        
        [$where, $sort, $order, $offset, $limit] = $this->buildparams();
        $list = $this->vmodel
        ->where($where)
        ->where($where2)
        ->order($sort, $order)
        ->paginate($limit);
        
        $result = ['total' => $list->total(), 'rows' => $list->items()];
        return json($result);
    }
}
